package com.face.base.mapper;

import com.face.base.pojo.FaceEntry;
import com.face.base.pojo.UserAttendance;
import com.face.base.pojo.UserInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

/**
 * 用户 mapper。
 */
@Repository
@Mapper
public interface UserMapper {

    /**
     * 判断用户是否存在。
     *
     * @param userID：用户编号
     * @return true：存在。
     * false：不存在。
     */
    @Select("select count(*)=1  FROM user_info WHERE userID=#{userID}")
    Boolean isUser(String userID);

    /**
     * 根据用户编号获取用户姓名。
     * @param userID：用户姓名
     * @return
     *      获取到的用户。
     */
    @Select("select userName FROM user_info WHERE userID=#{userID}")
    String getUserName(String userID);

    /**
     * 添加用户。
     *
     * @param userInfo：用户对象信息。
     * @return true：添加成功。
     * false：添加失败。
     */
    @Insert("INSERT INTO user_info (userID,userName,userIDCard,department,address) VALUES (#{userID},#{userName},#{userIDCard},#{department},#{address})")
    Boolean addUser(UserInfo userInfo);

    /**
     * 添加用户人脸信息。
     * @param faceEntry：人脸信息对象。
     * @return
     *      true：成功。
     *      false：失败。
     */
    @Insert("INSERT INTO face_entry (userID,registerDate,userFaceID) VALUES (#{userID},#{registerDate},#{userFaceID})")
    Boolean addFace(FaceEntry faceEntry);

    /**
     * 用户考勤。
     * @param userAttendance：用户考勤信息。
     * @return
     *      true：考勤成功。
     *      false：考勤失败。
     */
    @Insert("INSERT INTO user_attendance (userID,signInDate) VALUES (#{userID},#{signInDate})")
    Boolean attendance(UserAttendance userAttendance);
}
